/* Clase TableMaker  encargada de administrar la creacion 
 * de archivos de excel 
 */
package DBMS;

import java.io.File;
import jxl.write.*;
import jxl.*; 

/**
 * @author Green Code
 */
public class TableMaker {
    protected WritableWorkbook set;
    protected WritableSheet page;
    protected int row;
    
    /** Metodo para crear un libro de 
     * excel, devuelve una excepcion si no 
     * se puede abrir el archivo
     * @param File f asociado al libro de trabajo
     * @return TableMaker asociado al file f
     */
    TableMaker( File f ) throws Exception {
        set = Workbook.createWorkbook(f);
        page = set.createSheet("Sheet 1", 0);
        row = 0;
    }
    
    /**Metodo write para escribir un string dentro del 
     * archivo de excel
     * @param String[] s  string a escribir
     * @return no devuelve parametros
     */
    public void write(String[] s) throws Exception {
        final int n = s.length;
        for (int i = 0; i != n; i++) {
            Label label = new Label(i, row, s[i]); 
            page.addCell(label);
        }
        this.row++;
    }
    
    /** Metodo para cerrar una hoja de calculo
     * no recibe parametros
     * no devuelve parametros
     */
    public void finish() throws Exception {
        set.write();
        set.close();
    }
    
    /** Metodo para finalizar una hoja
     * de calculo intenta cerrar la hoja
     * y puede lanzar una excepticon
     */
    protected void finalize() throws Throwable {
        try {
            set.close();
        }
        catch (Exception e) {
            
        }
        finally {
            super.finalize();
        }
    }
}
